Page({
  // 页面分享
  onShareAppMessage() {
    return {
      // 转发分享的标题
      title: '查看通行证',
      // encryptedData 参数拼接到转发分享的链接中
      path: '/pkg_visitor/pages/passport/index?encryptedData=' + this.data.detail.encryptedData,
      // 自定义转发分享的图片路径
      imageUrl: 'https://enjoy-plus.oss-cn-beijing.aliyuncs.com/images/share_poster.png',
    }
  },
  data: {
    detail: {},
  },
  onLoad({ id, encryptedData }) {
    if (id) {
      // 1. 如果接收的参数是 id，根据 id 获取访客详情
      this.getDetail(id)
    } else {
      // 2. 如果接收的参数是 encryptedData，根据 encryptedData 获取访客详情(分享的通行证)
      this.getDetailShare(encryptedData)
    }
  },
  // 获取访客详情（通行证）
  async getDetail(id) {
    // 调用接口
    const res = await wx.http.get('/visitor/' + id)
    // 渲染数据
    this.setData({
      detail: res.data,
    })
  },
  // 获取分享的访客通行证详情
  async getDetailShare(encryptedData) {
    // 调用接口
    const res = await wx.http.get('/visitor/share/' + encryptedData)
    // 渲染数据
    this.setData({
      detail: res.data,
    })
  },
  // 小程序授权检测
  authSetting() {
    // 1. 获取用户的当前设置
    wx.getSetting({
      // authSetting 用户授权结果
      success: ({ authSetting }) => {
        // console.log('authSetting', authSetting)
        // 检测相册是否开启授权
        if (authSetting['scope.writePhotosAlbum'] === false) {
          // 🔴 未开启授权，弹窗引导用户开启授权
          // 2. 模态弹窗
          wx.showModal({
            content: '请允许添加到相册',
            showCancel: false,
            success: () => {
              // 3. 打开设置
              wx.openSetting({
                success: ({ authSetting }) => {
                  // console.log('authSetting', authSetting)
                  // 再次检测相册是否开启授权
                  if (authSetting['scope.writePhotosAlbum'] === true) {
                    // 🟢 如果用户授权，调用需授权的 API
                    this.saveImage()
                  } else {
                    // 🔴 用户还是不授权，先不打扰
                  }
                },
              })
            },
          })
        } else {
          // 🟢 已授权，直接调用
          this.saveImage()
        }
      },
    })
  },
  // 保存图片
  async saveImage() {
    try {
      // 1. 获取图片信息(下载图片到本地)
      const { path } = await wx.getImageInfo({
        src: 'https://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/livimini/visitUrl.png',
      })
      console.log('🟢 res', path)
      // 2. 调用API保存图片(不支持网络图片)
      await wx.saveImageToPhotosAlbum({ filePath: path })
      // 3. 成功提示
      wx.utils.toast('图片保存成功')
    } catch (error) {
      //
    }
  },
})
